package br.com.ss.entity;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import br.com.ss.enumeration.EPerfilMenu;


@Entity
@Table(name = "MENU")
public class Menu extends AbstractEntity implements Serializable {
	
	private static final long serialVersionUID = 4762700556951047849L;
	
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-==-
	@Id
    @GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name="id")
    private Long id;
	
	@Column(name="idusuariocriacao")
	private Long idUsuarioCriacao;

	@Column(name="idusuarioalteracao")
	private Long idUsuarioAlteracao;
	
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name="dataCriacao")
	private Date dataCriacao;
	
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name="dataAlteracao")
	private Date dataAlteracao;
			
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-==-

	@Column(name="local")
	private String local;
	
	@Column(name="label")
	private String label;
	
	@Column(name="descricao")
	private String descricao;

	@Column(name="perfil")
	@Enumerated(EnumType.STRING)
	private EPerfilMenu perfil;
	
	
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-==-
	
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getIdUsuarioCriacao() {
		return idUsuarioCriacao;
	}

	public void setIdUsuarioCriacao(Long idUsuarioCriacao) {
		this.idUsuarioCriacao = idUsuarioCriacao;
	}

	public Long getIdUsuarioAlteracao() {
		return idUsuarioAlteracao;
	}

	public void setIdUsuarioAlteracao(Long idUsuarioAlteracao) {
		this.idUsuarioAlteracao = idUsuarioAlteracao;
	}

	public Date getDataCriacao() {
		return dataCriacao;
	}

	public void setDataCriacao(Date dataCriacao) {
		this.dataCriacao = dataCriacao;
	}

	public Date getDataAlteracao() {
		return dataAlteracao;
	}

	public void setDataAlteracao(Date dataAlteracao) {
		this.dataAlteracao = dataAlteracao;
	}

	public String getLocal() {
		return local;
	}

	public void setLocal(String local) {
		this.local = local;
	}
	
	public String getLabel() {
		return label;
	}

	public void setLabel(String label) {
		this.label = label;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	
	public EPerfilMenu getPerfil() {
		return perfil;
	}

	public void setPerfil(EPerfilMenu perfil) {
		this.perfil = perfil;
	}

	public static long getSerialversionuid() {
		return serialVersionUID;
	}

	@Override
		public String toString() {
			
			StringBuilder sb = new StringBuilder();
			
			sb.append(" [ ");
			sb.append(" Menu ");
			sb.append(", id = ").append(getId());
			sb.append(", local = ").append(getLocal());
			sb.append(", label = ").append(getLabel());
			sb.append(", descricao = ").append(getDescricao());
			sb.append(" ] ");
			
			return sb.toString();
		}




}
